#pragma once

#include <string>
#include <variant>

namespace nexus {

struct TopologyUpdate {
  enum Type { ADD_DEV, ADD_LINK } type;
    struct AddDevDetail {
      std::string name;
    };
    
    struct AddLinkDetail {
      std::string srcDev;
      std::string srcPort;
      std::string dstDev;
      std::string dstPort;
    };
  std::variant<AddDevDetail, AddLinkDetail> detail;
};

} // namespace nexus